from datetime import datetime, timedelta


class TimeUtil(object):
    @staticmethod
    def get_current_time():
        """
        获取当前时间
        """
        return datetime.now()

    @staticmethod
    def format_datetime(dt, format_str="%Y-%m-%d %H:%M:%S"):
        """
        将日期时间对象格式化为字符串
        """
        return dt.strftime(format_str) if dt else None

    @staticmethod
    def parse_datetime(dt_str, format_str="%Y-%m-%d %H:%M:%S"):
        """
        将字符串解析为日期时间对象
        """
        try:
            return datetime.strptime(dt_str, format_str)
        except ValueError:
            return None

    @staticmethod
    def add_days(dt, days):
        """
        在日期时间对象上增加指定天数
        """
        return dt + timedelta(days=days) if dt else None

    @staticmethod
    def subtract_days(dt, days):
        """
        在日期时间对象上减少指定天数
        """
        return dt - timedelta(days=days) if dt else None
